# pip install bs4
# BeautifulSoup解析速度没有re的正则快（demo/豆瓣爬虫.py）
import time

import requests
from bs4 import BeautifulSoup

'''
# 这个网站似乎挂了  我大逼站不会挂
url = "https://www.bilibili.com/"  # https://www.xinfadi.com.cn/marketanalysis/0/list/1.shtml
resp = requests.get(url)

# 1、 把页面源代码交给BeautifulSoup进行处理，生成bs对象
page = BeautifulSoup(resp.text,"html.parser") # 指定HTML解析器
# 2、 从bs对象中查找数据 如果是要正则查找的话需要好久的
# find  找table， 你想筛选哪个table class是bg_table修饰的
#table = page.find("table",class_="hq_table")  # class是python关键字 class_ 是为了区分  这样才不会报错
# table = page.find("div", attrs={"class":"hq_table"})
#拿到所有数据行
# trs = table.findAll("tr")[1:]
# for tr in trs: # 每一行
#     tds = tr.find_all("td") # 拿到每行中所有的td
#     name = tds[0].text # .text 表示拿到被标记的文本内容
#     avg = tds[1].text # .text 表示拿到被标记的文本内容
table = page.find("div", attrs={"class":"rcmd-box-wrap"})  # class_可以替换成
print(table)
'''

'''
唯美壁纸  进入主页面拿到里面图片列表（点击图片列表进入子页面）获取子页面的链接地址， 我们要获取子页面的那个大图下载地址
'''


def getcode():
    url = "https://www.umei.net/bizhitupian/weimeibizhi/"
    resp = requests.get(url)
    resp.encoding = 'utf-8'  # 处理乱码
    # print(resp.text)
    # 把源代码交给bs
    main_page = BeautifulSoup(resp.text, "html.parser")  # 指定HTML解析器
    # alist = main_page.find('div', class_="TypeList")#.find_all("a")
    alist = main_page.find("div", attrs={"class": "TypeList"}).find_all("a")
    # print(alist)
    for a in alist:
        #print(a.get('href')) # 子页面链接
        #拿到子页面源代码
        href = a.get('href')
        child_page_resp = requests.get(href)
        child_page_resp.encoding = "utf-8"
        child_page_text = child_page_resp.text
        # 从子页面中拿到图片的下载路径
        child_page = BeautifulSoup(child_page_text,"html.parser")
        p = child_page.find("p",align="center")
        img = p.find("img").get("src")
        # print(img)
        img_resp = requests.get(img)
        # img_resp.content # 这里拿到的是字节
        img_name = img.split("/")[-1] # 拿到 url中最后一个/以后的内容
        with open("bizhi/" +img_name,mode="wb") as f:
            f.write(img_resp.content)
        print(img_name + " is over")
        time.sleep(1) # 下载完图片睡眠1S
    print("all over")





getcode()  # 接下来可以写存储方法
